# 存在一个按升序排列的链表，给你这个链表的头节点 head ，请你删除所有重复的元素，使每个元素 只出现一次 。
#  返回同样按升序排列的结果链表。

#  示例 1：
# 输入：head = [1,1,2]
# 输出：[1,2]
#
#  示例 2：
# 输入：head = [1,1,2,3,3]
# 输出：[1,2,3]
from com.example.linked.common import *


class Solution:
    def deleteDuplicates(self, head: ListNode) -> ListNode:
        """
        遍历链表，如果cur和cur.next相同则删掉cur.next节点
        :param head:
        :return:
        """
        if not head or not head.next:
            return head
        cur = head
        while cur.next:
            if cur.val == cur.next.val:
                cur.next = cur.next.next
            else:
                cur = cur.next

        return head


if __name__ == "__main__":
    # l = ListNode(1)
    # l.next = ListNode(1)
    # l.next.next = ListNode(2)
    # l.next.next.next = ListNode(2)
    # l.next.next.next.next = ListNode(3)
    # l.next.next.next.next.next = ListNode(4)

    # l = ListNode(1)
    # l.next = ListNode(1)
    # l.next.next = ListNode(2)
    # l.next.next.next = ListNode(3)
    # l.next.next.next.next = ListNode(3)

    l = getListNode(1, 1, 3, 3)
    res = Solution().deleteDuplicates(l)
    vistListNode(res)
